import { NextRequest, NextResponse } from 'next/server'
import { cookies } from 'next/headers'

export async function middleware(request: NextRequest) {
  // 获取请求的路径和token
  const { pathname } = request.nextUrl
  const cookieStore = await cookies()
  const token = cookieStore.get('token')

  // 如果前往登录页 且存在 token 则跳转到首页
  if (pathname.startsWith('/login') && token?.value) {
    // 这里需要传递绝对路径
    return NextResponse.redirect(new URL('/home', request.url))
  }
  
  // 如果前往首页 且不存在 token 则跳转到登录页
  if (!token?.value && pathname.startsWith('/home')) {
    return NextResponse.redirect(new URL('/login', request.url))
  }
  
  // 其它情况则继续执行
  return NextResponse.next()
}
